package com.vcc.service.boss.response.card;


import com.vcc.data.entity.CardType;
import com.vcc.service.boss.response.baseVo.BossBaseVo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;

@EqualsAndHashCode(callSuper = true)
@Data
@Getter
@Setter
public class CardVoBoss extends BossBaseVo implements Serializable {
    private String sectionNo;
    private String code;
    private String country;
    private String currency;
    private String currencyName;
    private String remark;
    private Integer verifyOpenCardStatus;
    private Integer verifyRechargeCardStatus;
    private Integer verifyOutCardStatus;
    private Integer verifyCloseCardStatus;
    private Integer verifyFreezeUnFreezeCardStatus;
    private String cardLabel;
    private String channelName;
    private Integer status;
    private Integer verifySpecialStatus;
    private BigDecimal amount;
    private BigDecimal exchangeRate;
    private Integer openCardOnLineCount;
    private BigDecimal initAmount;
    private BigDecimal dealerMinAmount;
    private Integer sort;

    private Long operationUserId;

    private String operationUserAccount;

    private String whiteList;

    private BigDecimal openCardRechargeMinAmount;
    private BigDecimal withdrawMinAmount;
    private BigDecimal rechargeMinAmount;
    private BigDecimal closeCardMinAmount;
    private String withdrawStatus;
    private String closeStatus;
    private BigDecimal minAuthThresholdAmount;

    private BigDecimal authFee;

    private BigDecimal authFeeRate;

    private BigDecimal failFee;

    private BigDecimal failFeeRate;

    private BigDecimal minAuthFee;

    private BigDecimal minAuthFeeRate;

    private BigDecimal refundFee;

    private BigDecimal refundFeeRate;

    private BigDecimal reversalFee;
    private BigDecimal reversalFeeRate;

    private BigDecimal crossBorderFee;

    private BigDecimal crossBorderFeeRate;

    private String cardScenes;

    private String adminRemark;

    private String type;

    public CardVoBoss() {
    }

    public CardVoBoss(CardType card, String account) {
        super.setId(card.getId());
        this.sectionNo = card.getSectionNo();
        this.code = card.getCode();
        this.country = card.getCountry();
        this.currency = card.getCurrencyCode();
        this.currencyName = card.getCurrencyName();
        this.remark = card.getRemark();
        //0 支持  1  不支持  2  关闭中
        this.verifyOpenCardStatus =
                card.getVerifyOpenCardStatus();
        this.verifyRechargeCardStatus = card.getVerifyRechargeCardStatus();
        this.verifyOutCardStatus = card.getVerifyOutCardStatus();
        this.verifyCloseCardStatus = card.getVerifyCloseCardStatus();
        this.verifyFreezeUnFreezeCardStatus = card.getVerifyFreezeUnFreezeCardStatus();
        this.cardLabel = card.getCardLabel();
        this.channelName = card.getChannelName();
        this.status = card.getStatus();
        this.verifySpecialStatus = card.getVerifySpecialStatus();
        this.initAmount = card.getInitAmount();
        this.dealerMinAmount = card.getDealerMinAmount();
        setCreateDate(card.getCreateDate());
        this.operationUserAccount  = account;
        this.operationUserId = card.getOperationUserId();
        this.exchangeRate = BigDecimal.valueOf(0);
        this.whiteList = "";
        this.amount = card.getAmount();
        this.openCardOnLineCount = 0;
        this.openCardRechargeMinAmount = card.getOpenCardRechargeMinAmount();
        this.withdrawMinAmount = card.getWithdrawMinAmount();
        this.rechargeMinAmount = card.getRechargeMinAmount();
        this.closeCardMinAmount = card.getCloseCardMinAmount();
        this.withdrawStatus = card.getWithdrawStatus();
        this.closeStatus = card.getCloseStatus();
        this.minAuthThresholdAmount = card.getMinAuthThresholdAmount();
        this.authFee = card.getAuthFee();
        this.authFeeRate = card.getAuthFeeRate();
        this.failFee = card.getFailFee();
        this.failFeeRate = card.getFailFeeRate();
        this.minAuthFee = card.getMinAuthFee();
        this.minAuthFeeRate = card.getMinAuthFeeRate();
        this.refundFee = card.getRefundFee();
        this.refundFeeRate = card.getRefundFeeRate();
        this.reversalFee = card.getReversalFee();
        this.reversalFeeRate = card.getReversalFeeRate();
        this.crossBorderFee = card.getCrossBorderFee();
        this.crossBorderFeeRate = card.getCrossBorderFeeRate();
        this.sort = card.getSort();
        this.cardScenes = card.getCardScenes();
        this.adminRemark = card.getAdminRemark();
        this.type = card.getType();
    }
}
